# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
from scrapy_demo01.items import YouKuFilm, YouKuFilm2

# Pipelines管道是所有请求的都会输入到管道来，多个管道都会接收到数据
# ，优先级高的管道处理完数据后return给下一个管道继续处理，下一个管道处理的是上一个管道返回的数据
# ，形成一个联试处理管道，最后一个管道负责将数据持久化


class YouKuFilmPipeline(object):
    def process_item(self, item: YouKuFilm, spider):  # item: Type 后面的Type只是提示作用不是强制限定item类型
        # item就是spider文件yield过来的YouKuFilm
        if isinstance(item, YouKuFilm2):
            return
        print('-' * 66)
        print('YouKuPipeline1 -> ', type(item), item)
        return item

class YouKuFilm2Pipeline(object):
    def process_item(self, item: YouKuFilm2, spider):
        # item就是spider文件yield过来的YouKuFilm, 此处主要对传过来的数据进行持久化等操作
        print('+-' * 33)
        print('YouKuPipeline2 -> ',type(item), item)
        item['title'] = item['title'] + '_2'  #
        return item  # 该数据被YouKuFilmPipeline管道接收到

class ScrapyDemo01Pipeline(object):
    def process_item(self, item, spider):
        return item
